专利摘要:
コンピューティング環境におけるアプリケーションの管理は、多くの場合、アプリケーションを取得する、種々の場所においてデーター・オブジェクトを展開する、および展開されたデバイスに関してアプリケーションのコンフィギュレーションを設定するというように、相当な数の計算動作を必要とする。従来のコンピューティング環境は、特に、多くのデバイスを跨って分散しているコンピューティング環境にとっては、典型的なアプリケーション・ライフ・サイクル全体を通じて不適切なサポートしか提供しない場合がある。一方、本コンピューティング環境は、種々のデバイスに配信できる展開可能なオブジェクト階層において表すことができる。したがって、オブジェクト階層においてアプリケーションの表現をインストールし、アプリケーションの発見、共有、更新、および除去というような、アプリケーション・ライフ・サイクルの他の多くの面をサポートするために、アプリケーション管理サービスを提供することができる。したがって、デバイスは、一貫した態様で、計算メッシュを構成するデバイス間における手動管理を縮減して、コンピューティング環境のアプリケーションをユーザーに提供することができる。
公开号:JP2011515763A
申请号:JP2011500835
申请日:2009-02-20
公开日:2011-05-19
发明作者:アミガ,オリ;ジャーン,ジュンフェン;シュクラ,ダールマ;マッキンタイア,ジョン
申请人:マイクロソフト コーポレーション;
IPC主号:G06F9-445
专利说明:

[0001] [0001] 多くのコンピューティング環境は、大きく多様なオブジェクトの集合を備えており、これらは1組のオブジェクト・システムによって管理されている。例えば、あるコンピューティング環境は、1つのファイル・システムによって管理される1組のファイルと、1つのデーターベース・システムによって管理される1つ又は複数のデーターベースと、アプリケーションを表し1つのアセンブリ・キャッシュによって管理される1組のエクゼキュータブル・バイナリー(executable binaries)と、オペレーティング・システムのユーザー・プロファイル・コンポーネントによって管理される1組のユーザー・プロファイルと、データー・キャッシュ・コンポーネントによって管理される種々のデーター・キャッシュとを備えていることがある。種々のデーター・キャッシュとは、オペレーティング・システムのコピー・バッファによって管理される1組のコピーされた項目、オペレーティング・システムの実行取り消し(undo)コンポーネントによって管理される1組の実行取り消し行為、およびオペレーティング・システムの項目使用追跡コンポーネントによって管理される1組の「最新使用」項目等である。更に、このようなオブジェクトは、一人以上のユーザーによってそして1つ又は複数の動作(例えば、2つのオブジェクト集合を併合するオブジェクト同期動作、およびソース・オブジェクト集合と一致するように目標オブジェクト集合を調節するオブジェクト・ミラーリング動作)にしたがって動作する複数のデバイス間で交換することもできる。このように、オブジェクトは、1組のオブジェクト・システムを通じて疎に編成されており、一体となってコンピューティング環境を表す。]
発明が解決しようとする課題

[0002] [0002] 従来のコンピューティング環境内におけるアプリケーション管理は、かなりのユーザー関与を伴うことが多かった。例えば、ユーザーは、所望のアプリケーションを独立して発見することができ、そしてセットアップ・エクゼキュータブルまたはセットアップ・ファイルを収容したCD−ROMのようなインストーラー・パッケージを調達することができる。次いで、ユーザーは、ファイルを特定の場所にコピーし登録情報を作成することによってというようにして、コンピューティング環境におけるアプリケーションの展開を容易にするアプリケーション・インストーラーを利用することができる。しかしながら、アプリケーションの展開後では、コンピューティング環境は、当該アプリケーションに対して継続サポートを殆ど提供しないのが通例であり、アンインストーラー・アプリケーションしか備えていないこともときにはある。実行、共有、同期、および更新というような共通の維持作業は、アプリケーションに委ねられているのが普通である。更に、1つのコンピューター・システムにアプリケーションを展開した場合でも、2つ以上のこのようなプラットフォームにおいて共通の目的のために同じユーザーによって操作され利用されるのであっても、他のコンピューター・システムまたはデバイスにおける当該アプリケーションの展開が可能になることや容易になることは希である。]
課題を解決するための手段

[0003] [0003] この摘要は、以下で詳細の説明において更に説明する概念から選択したものを簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の鍵となる要素または必須の特徴を特定することを意図するのでなければ、特許請求する主題の範囲を限定するために用いることを意図するのでもない。]
[0004] [0004]
コンピューティングシステム内において、オブジェクトがちぐはぐで疎に纏められたオブジェクト・システムの集合として編成されているために、様々な問題を生ずる可能性がある。例えば、種々のデバイスを通じてユーザーに一貫性のあるコンピューティング環境を提示することが、特にデバイスの能力にばらつきがある場合(例えば、高性能パーソナル・ワークステーション、ブラウザー主体の公衆端末、および低性能のセルフォン・デバイス)、困難な場合がある。別の例として、同期およびバックアップというようなサービスをオブジェクトに適用するには、各オブジェクト・システムとインターフェースして、それによって管理されているオブジェクトに作用させなければならないことがあり、このようなインターフェースはオブジェクト・システム間で多様に異なる場合がある。第3の例として、多種多様なオブジェクトの集合(アプリケーションを構成するオブジェクトの全てというようなオブジェクト集合)を関係付けることは、管理するオブジェクト・システムの協同が不完全なために、困難になる場合がある。]
[0005] [0005]コンピューティング環境を構成するオブジェクトを表すための代わりの技法では、オブジェクトをオブジェクト階層に編成する必要があり、このオブジェクト階層をコンピューティング環境ホストによってホストすることができる。オブジェクトがオブジェクト・システムによって均一に表現され一貫性のある方法で管理されていれば、このコンピューティング環境のオブジェクトの全てに適用するために、1組のサービスを交換することができる。更に、オブジェクト階層を種々のデバイスに配信して、同じコンピューティング環境(同じユーザー・プロファイル、アプリケーション、データー・ファイル等を含む)を表すことができ、各デバイスは、そのコンピューティング環境を一貫性のある態様でレンダリングするが、当該デバイスの能力(例えば、ワークステーションに取り付けられているキーボード・デバイスからのデーター入力を受けるためのハード・キーボード・インターフェース、およびセルフォン・デバイスからのデーター入力を受けるためのタッチスクリーン・ソフトウェア・キーボード・インターフェース)に基づいてカスタム化することができる。]
[0006] [0006] この特質があるオブジェクト階層内では、アプリケーション管理タスクを実行することができる。コンピューティング環境ホストは、アプリケーションの取得、アプリケーションのデバイスとの関連付け、およびアプリケーションのデバイス上での展開を容易にすることができる。展開可能なオブジェクト階層においてアプリケーションを1組のオブジェクトとして表現すると、共通アプリケーション管理タスクをやり易くすることができる。第1の例として、アプリケーションを容易に展開することができ、そして多くの想定場面では、オブジェクト階層において表されている複数のコンピューター・システムおよびデバイス上において自動的に展開することができる。例えば、アプリケーションの第1バージョンをワークステーションに展開することができ、このアプリケーションの第2バージョンを、公衆端末で用いるためのウェブまたはウェブ対応アプリケーションとして展開することができ、このアプリケーションの第3バージョンを、低電力セルフォン・デバイス上で用いるための縮減機能アプリケーションとして展開することができる。第2の例として、コンピューティング環境ホストは、オブジェクト階層をしかるべく調節し、オブジェクト階層のホストされているバージョンと展開されたバージョンとを同期させることによって調節をデバイスに展開することによって、アプリケーションの更新を容易にすることができる(例えば、アプリケーション・リソースの更新バージョンとのパッチング、またはアプリケーションと用いるための新たなコンテンツの展開)。]
[0007] [0007] 更に、展開可能なオブジェクト階層においてアプリケーションを1組のオブジェクトとして表現すると、新たな機構が可能になることがある。第1の例として、コンピューティング環境は、オブジェクト階層の具体的な部分を第2のユーザーのデバイス、コンピューター・システム、またはコンピューティング環境ホストに展開することによって、ユーザーがアプリケーションを第2のユーザーと、またはアプリケーション・セッションの態様(aspect)と共有することを可能にすることができる。例えば、第1ユーザーは、メディア・プレーヤー・アプリケーションを通じて第1コンピューター上で再生するために1組の歌オブジェクトを選択することができ、更に第2ユーザーとのメディア・プレーヤー・アプリケーション・セッションを共有することを選択することができる(例えば、メディア・プレーヤー・アプリケーションのオーディオを第2のユーザーにストリーミングすることによって)。第2の例として、アプリケーションのコンフィギュレーションを、オブジェクト階層の一部として、デバイスおよびコンピューター・システム間で同期させることができる。デバイスには依存しないアプリケーション・プロパティ(例えば、スペル・チェック辞書に追加される特定用途向けの単語)を自動的にこのようなデバイスおよびコンピューター・システムの全てに伝搬させることができ、一方デバイス特定のアプリケーション・プロパティを、コンピューティング環境ホストによって、それぞれのデバイスに合わせて指定することができる。このように、コンピューティング環境ホストのアプリケーション管理サービスは、一人以上のユーザーによって操作される種々のコンピューター・システムおよびデバイス上における、アプリケーションの発見、展開、使用、および除去をサポートすることができる。]
[0008] [0008] 以上の目的および関連する目的の遂行のために、以下の説明および添付図面は、ある種の例示的態様および実施態様を詳述する。しかし、これらは、1つ又は複数の態様を用いることができる種々の方法の内、そのわずかを示すに過ぎない。本開示のその他の態様、利点、および新規な特徴は、添付図面と合わせて検討したときに、以下の詳細な説明から明白となろう。]
図面の簡単な説明

[0009] 図1は、コンピューティング環境における典型的なアプリケーションのライフ・サイクルの図である。
図2は、コンピューティング環境ホストの種々のコンピューティング環境レンダリング・デバイスとの相互作用の一例を示す。
図3は、デバイス上においてコンピューティング環境を表すオブジェクト階層において、アプリケーションの展開を管理する方法例を示す流れ図である。
図4は、アプリケーション・ストアによって管理されている少なくとも1つのアプリケーションの、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層に対する展開を管理する例示的システムを示すコンポーネント・ブロック図である。
図5は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する別の例示的システムを示すコンポーネント・ブロック図である。
図6は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する更に別の例示的システムを示すコンポーネント・ブロック図である。
図7は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの一部のコンポーネント・ブロック図である。
図8は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの別の一部のコンポーネント・ブロック図である。
図9は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理する例示的システムの更に別の一部のコンポーネント・ブロック図である。
図10は、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層へのアプリケーションの展開を管理するシステムの更に別の例を示すコンポーネント・ブロック図である。
図11は、本明細書において明記する機能(provision)の1つ又は複数を実現することができるコンピューティング環境例を示す。] 図1 図10 図11 図2 図3 図4 図5 図6 図7 図8
実施例

[0010] [0020] これより、図面を参照しながら特許請求する主題について説明する。図面において、同様の参照番号が、同様の要素を示すために全体を通じて用いられている。以下の記載では、説明の目的上、特許請求する主題の完全な理解が得られるようにするために、多数の具体的な詳細を明記する。しかしながら、特許請求する主題は、これら具体的な詳細がなくても実施可能であることは明白であろう。他方において、周知の構造およびデバイスは、特許請求する主題を記載し易くするために、ブロック図で示されている。]
[0011] [0021] 従来のコンピューティング環境は、大規模且つ様々なアプリケーション系列を含み、クロックおよび計算器のような単純な目的の小型ツールから、ソフトウェア統合開発環境および生産性スイートのような複雑で相互に関係するアプリケーションの大型スイートまでの範囲に及ぶ。また、アプリケーションは、マルチメディア・プレーヤーおよびそれによってレンダリングされるメディア・オブジェクト(例えば、リーダー・アプリケーションによってレンダリングする1つ又は複数の電子書籍)、ゲーム、スクリーン・セイバー、種々の形式のハードウェアを管理するデバイス・ドライバ等のような媒体も備えていることもある。アプリケーションは、ローカルに(例えば、ユーザーのデバイスに展開されているエクゼキュータブル・バイナリーおよびリソースによって)展開すること、リモートに(例えば、リモート・サーバー上で実行し、ウェブ・ブラウザーを通じてユーザーと通信するウェブ・アプリケーション)展開することができ、あるいはその組み合わせも可能である(例えば、ネットワーク・アクセス可能な電子メール・アーカイブにアクセスするように構成されている電子メール・クライアントのような、リモート・リソースを利用する、ローカルにインストールされているアプリケーション)。通常、オペレーティング・システムがホストに供給されてアプリケーションを維持管理し、更にアプリケーション・ランチャー(application launcher)および関係のあるデーター・オブジェクトとの関連を通じて、アプリケーションへのユーザー・アクセスを提供する。]
[0012] [0022]図1は、コンピューティング環境においてアプリケーションが辿る典型的なアプリケーション・ライフ・サイクル10を示す。アプリケーション・ライフ・サイクル10は、典型的なコンピューティング環境において遂行され、データー・オブジェクトをコピーする、コンフィギュレーション情報を書き込むおよび読み取る、ならびにオブジェクトを要求してコンピューター・ネットワークを通じてサーバーから受信するというような、かなりの数の動作を伴うことがある。アプリケーション・ライフ・サイクル10は、通常調達12から始まり、ユーザーは、コンピューティング環境においてアクセス可能にするアプリケーションを選択する。調達12は、通例、発見14を含む。ユーザーは、アプリケーション・ライブラリーのユーザー・ドリブン・ブラウジング(user-driven browsing)または広告の提案を通じてというようにして、アプリケーションを知ることになる。また、調達12は、通例、取得16も含む。ユーザーは、アプリケーションのリソースを入手し、そのアプリケーションを用いる許可を手配する。ローカルにインストールされたアプリケーションについては、取得16は、インストーラー・アプリケーションをアプリケーション・サーバーからダウンロードする必要がある場合もある。一方ウェブ・アクセス可能アプリケーションでは、ウェブメール・サービスに対してユーザー・アカウントを作成することによってというようにして、ウェブ・アプリケーションの供給業者に署名する(sign up)する必要がある場合がある。また、取得16は、金銭の支払い、およびエンド・ユーザー・ライセンス契約(EULA)をユーザーに提示し、その条件(terms and conditions)の受諾を要請するというような使用許諾、というようなトランザクションも必要となる場合もある。ときとして、予めインストールされているアプリケーションを、新たなコンピューティング環境のデフォルト・コンポーネントとして、ユーザーに利用可能にすることによって、というようにして、調達12の一部または全部を省略してもよいこともある。] 図1
[0013] [0023]調達12の後または調達12と同時に、アプリケーション・ライフ・サイクル10は、インストール18を必要とすることが多く、ローカルコンピューティング環境はプログラムに対するアクセスを与えるように構成されている。ときとして、インストール18はマッピング20を必要とし、特定のデバイスがアプリケーションを用いるように構成される。マッピング20は、ソフトウェアにアクセスするためにユーザーが特定のデバイスを指定すること(例えば、アプリケーションを展開しようとするセルフォン・デバイスを選択する)、および/またはソフトウェアを使用するデバイスを許可すること(例えば、製品の活性化によって)が必要となる場合がある。また、インストール18は、展開22も必要とし、アプリケーションを構成するリソースが1つ又は複数のマッピングされたデバイスに展開される(例えば、アプリケーション・フォルダーを作成し、このようなフォルダーにアプリケーション・バイナリーを入れ、コード・ライブラリーを登録し、コンフィギュレーション情報をシステム・レジストリおよびコンフィギュレーション・ファイルに書き込む)。また、展開22は、アプリケーションにアプリケーション・ランチャーを登録し、アプリケーションをそれに関係するデーター・オブジェクトと関連付け(例えば、メディア・アプリケーションをあるタイプのメディア・オブジェクトのためのメディア・プレーヤーとして特定する)、および/またはシステムの初期化のときまたは特定のイベントに応答してアプリケーションを自発的に起動するようにコンピューティング環境を構成することによってというようにして、コンピューティング環境がアプリケーションへのアクセスを与えるように構成することを必要とする場合もある。また、展開22は、アプリケーションを使用する際にユーザーを補佐するために、文書を表示することを伴う場合もある。想定場面の中には、デバイスにネットワーク・サーバーを登録する、またはそのデバイスのためにアプリケーションをホストするようにネットワーク・サーバーを構成するというように、インストール18がリモート・リソースのコンフィギュレーション設定を伴う場合もある。別の想定場面では、インストール18を縮減または省略してもよい場合もある。例えば、ローカルに展開されたアプリケーションは、コンフィギュレーション設定やインストールを行わなくても実行するエクゼキュータブル・バイナリーを備えている場合があり、ウェブ・アプリケーションはローカル・デバイス上ではいずれの形式のインストールも必要としない場合がある。]
[0014] [0024]調達12およびインストール18の後、アプリケーションは、一人以上のユーザーによる使用24の準備ができていると考えられる。使用24は、通例、実行26を伴い、例えば、アプリケーションを起動することによって、またはアプリケーションと関連のあるデーター・オブジェクトを活性化することによって開始することができる。また、実行26は、メディア・プレーヤーによってレンダリングすることができる新たなメディア・オブジェクトのような、追加コンテンツの取得を含むこともある。また、使用24は更新28も伴い、アプリケーションの新たなバージョンを提供するまたはそれによって利用されるリソースの保守を行うためのパッチング(patching)(例えば、新たな形態のマルウェア(malware)を検出しこれに対処するための情報を受け取り組み込むウィルス防止パッケージ)というような、アプリケーションに対する継続中の変更を含む。このような更新28は、ときとして、アプリケーション・サーバーによってリモート・リソースにおいて実行することもある。例えば、ウェブメール提供業者は、ユーザーまたはユーザー・デバイスを巻き込むことなく、そしてユーザーが意識せずとも、そのバック・エンド・ソフトウェアを頻繁に更新することがある。]
[0015] [0025] また、アプリケーション・ライフ・サイクル10は、アンインストール30も伴うことがあり、ここでアプリケーションが1つ又は複数のデバイスから除去される。アンインストール30は、マッピング解除(unmapping)32を含むことがあり、1つ又は複数のデバイスはアプリケーションの使用許可を剥奪される。例えば、ウェブ・アプリケーションは、ある種のデバイス上でないとアクセスできないこともあり、アプリケーション・サーバー上に格納されている許可済みデバイス・リストから除去することによって、デバイスのマッピング解除を行うことができる。また、アンインストール30は、使用廃止(decommissioning)34も含むことがあり、ここではアプリケーションのリソースを1つ又は複数のデバイスから除去することができる。使用廃止34は、ユーザーが要求することができ、または自発的に呼び出すこともできる(例えば、アプリケーションが限定期間だけユーザーに使用許諾されている場合があり、コンピューティング環境は、使用許諾期間の満了時に自動的にアプリケーションを使用廃止するように構成することができる)。]
[0016] [0026]アプリケーション・ライフ・サイクルは広範囲に及ぶ種々のアプリケーションに広く利用されているが、多くの従来のコンピューティング環境は、アプリケーション・ライフ・サイクルが様々な欠点を表出させるように構成されている。一例として、従来のコンピューティング環境は、このアプリケーション・ライフ・サイクルを実施する際に大量のユーザー関与を強要する場合がある。調達12の間、コンピューティング環境は、アプリケーションを発見または取得するサポートを殆どまたは全く提供できないこともあり、ユーザーは、検索(例えば、ウェブ検索)によって有用なアプリケーションを探して、アプリケーション・インストール・パッケージをダウンロードする作業を負担することもある。また、調達12は、ライセンスのユーザー受諾を必要とする場合があるが、これを破棄することもできる(例えば、特定のボイラープレート・エンド・ユーザー・ライセンス契約の下で提供されたアプリケーションであればいずれも、ユーザーは予め許可することができる)。最新のコンピューティング環境は、通例、マッピング20のサポートを殆どまたは全く提供せず、ユーザーは1団のデバイス上におけるアプリケーションの個々の展開を手配しなければならないこともある。多くの従来のコンピューティング環境は、自動化されたインストーラー・ツールのように、展開22のために何らかのサポートを提供する。しかしながら、このようなインストーラー・ツールは、なおも、ウェブ・アプリケーションにおいてユーザー・アカウントを作成している間にユーザー情報(氏名、電子メール・アドレス等)を入力する、ライセンスを購入するためにクレジット・カード情報を提供する、そしてインストール用CDのように物理媒体と共に含まれるシリアル・キーを入力するというような、別の場合には回避できるかもしれない大量の相互作用をユーザーに任せる場合がある。また、従来のコンピューティング環境は、更新28に対して不適切なサポートを提供する場合もあり、アプリケーションに任されるか、またはユーザーが開始するソフトウェア・パッチの発見、ダウンロード、および適用に任されることが多い。最後に、マッピング解除34および使用廃止34は、インストーラー・アプリケーションによって容易にすることができるが、デバイス毎の管理に制限される場合がある。例えば、ユーザーは各デバイス上においてアンインストールを開始しなければならないかもしれず、このようなデバイス全ての間で展開を中央で管理することは難しいこともあり得る。]
[0017] [0027] これらの欠点は、悪化する可能性があり、最新のコンピューティング環境使用のコンテキストでは別の欠点が発生する虞れもあり、1団のデバイスを跨って広がることが多い。コンピューティング環境のユーザーは、協同してワークステーション、ノートブックまたはタブレットのような携帯用コンピューター・システム、ゲーム・コンソール、セルフォン、およびメディア・プレーヤーを管理および利用することもある。更に、ユーザーは、公衆のワークステーション上においてコンピューティング環境の全部または一部にアクセスすることや、コンピューティング環境の一部または全部へのアクセスを他のユーザーに付与することを(例えば、ゲストにコンピューティング環境を利用させるため、またはその中で管理されているデーター・オブジェクトにアクセスさせるため)望む場合もある。コンピューティング環境のコンテキストにおいてユーザーが動作させることができるデバイスは普及し続けているにも拘わらず、従来のオペレーティング・システムは、このようなデバイス間におけるコンピューティング環境の一貫した提示のためのサポートや、これらのデバイスによるデーター・オブジェクトの配信、アクセス、および同期を促進するためのサポートを殆ど提供することができない。この限られたサポートは、特に、アプリケーションに関して明白である。一般に、ユーザーは各デバイス上において、他のいずれのデバイスのコンフィギュレーションからも独立して、アプリケーション・ライフ・サイクル10の多くの態様を手動で実行することが多い。例えば、ユーザーは、ユーザー自身の好みにしたがって、特定のアプリケーションのコンフィギュレーションを設定することができるが、アプリケーションと同様に各デバイスのコンフィギュレーションを設定するには、アプリケーションの展開毎に、手作業でコンフィギュレーションを設定しなければならないことが多い。加えて、多数のデバイスを協同で用いる場合、新たな問題が生ずる虞れがある。例えば、あるユーザーが第1デバイス上においてある人についての1組の連絡先情報を有する場合、第2デバイス上では同じ人についての1組の連絡先情報との一貫性がないこともあり得るので、どちらの組の連絡先情報の方が新しいのかユーザーが確認できない場合がある。]
[0018] [0028] 1団のデバイス間において、一貫性があり、展開可能で、かつ拡張可能な態様でコンピューティング環境へのアクセスを提供する技法を開発する試みが近年行われている。また、これらの技法は、協同するデバイス間において1組の共通アプリケーションを提供し、更にこのようなデバイス間においてアプリケーションの調達、インストール、使用、およびアンインストールを管理する集中サービスも提供することも追求している。アプリケーションの集合は、必ずしも種々のデバイス間で同一とは限らず、例えば、ワークステーションが、セルフォン・デバイス上では適正に実行しない可能性がある高性能のアプリケーション(例えば、写真編集ソフトウェア、グラフィック集約的ゲーム)を内蔵することもあり、セルフォン・デバイスは、携帯用ではないワークステーションには関連のない可搬性アプリケーション(例えば、GPS系地図作成ソフトウェア)を含むこともある。しかしながら、多くのアプリケーションおよびそれに関係するデーター・オブジェクトは、このようなデバイス間で共有することができ(例えば、ユーザーのカレンダー・オブジェクトを管理するように構成されているカレンダー・アプリケーション)、このようなデバイス間におけるアプリケーションおよびデーター・オブジェクトの配信や同期を可能にするように、コンピューティング環境を適応させることもできる。また、このようなデバイス毎にアプリケーションを適応させることもできる。例えば、アプリケーションの第1バージョンまたはコンフィギュレーションは、ワークステーションのような高性能デバイスに適応させることができ、一方アプリケーションの第2バージョンまたはコンフィギュレーションは、画面サイズおよび入力能力に制限がある低性能デバイスに適応させることができる。しかしながら、同じアプリケーションのアプリケーション・コンフィギュレーション(例えば、視覚様式のようなユーザーの好み)のその他の部分は、デバイス間で共有することができ、種々のデバイス間においてユーザー体験のコンピューティング環境との一貫性を促進することができる。]
[0019] [0029] したがって、コンピューター・システムは、1組のデバイス間における、アプリケーション集合を含むコンピューティング環境の展開を可能にするように表現できる利点があることを認めることができる。このような技法の1つでは、1組のアプリケーションを、アプリケーション・リソース、およびそれによって用いられるデーター・オブジェクトを含むコンピューティング環境は、デバイスの能力に応じたレンダリングを行うためにデバイスに配信することができるように表現される。この表現は、オブジェクト階層にしたがって編成され、共通文法にしたがって表現された1組のオブジェクトを備えている。これらのオブジェクトは、ユーザーによって作成されるユーザー・ファイルおよびデーターのような、コンピューター・システムのデーター・オブジェクトを含む。また、これらのオブジェクトは、シェル、およびその中で提供されるアプリケーションというような、オペレーティング・システムのコンポーネントを構成するエクゼキュータブル・バイナリーおよびクラス・ライブラリーも含む。また、オブジェクトは、コンピューティング環境のユーザー・インターフェースを指定する情報を含み、この情報には、シェルの基本設定(shell preference)(例えば、視覚的主題、アプリケーション起動メニュー、およびダブル・クリック閾値)、ユーザー・アカウントおよび特権、セキュリティ情報(例えば、パスワード、セキュリティ・トークン、および証明書)、アプリケーション・バイナリーおよびコンフィギュレーション情報、ユーザー・データーおよびメタデーター(例えば、ファイル共有情報)、ならびにデーター・キャッシュ(例えば、最近使用したファイルのリスト、およびブラウザー履歴)が含まれる。これらのオブジェクトの種々の本質および使用にも拘わらず、これらのオブジェクトはオブジェクト階層において共通の態様で表されており、階層において任意に編成することができる。つまり、1組の分離したデーター・ストアを備えており、各々が1つのタイプのオブジェクトを収容する(例えば、ファイル・システムはファイルを収容し、レジストリはコンフィギュレーション情報を収容し、データー・キャッシュはブラウザー履歴を収容する)従来のコンピューター・システムとは対照的に、この手法におけるオブジェクト階層は、このようなオブジェクトの全てをオブジェクト階層において共通の態様で編成する。]
[0020] [0030] この態様で表現されたコンピューティング環境は、いずれのデバイスにでも配信することができ、そのデバイスの能力に適した態様でレンダリングすることができる。例えば、ワークステーションは、この情報を、ロバストな汎用コンピューティング環境としてレンダリングすることができ、一方公衆ワークステーションは、ウェブ・ブラウザー(例えば、ユーザーのセッションの終了時に破棄することができる仮想機械)を通じて異なるコンピューティング環境体験をレンダリングすることができ、セルフォンは、セルフォン関連情報(例えば、連絡先、カレンダー、およびナビゲーション・データー)により速くアクセスする、より軽いインターフェースを提供することができる。更に、この情報集合に対する更新(例えば、好みの変更、およびその中に収容されているデーター・ファイルに対する更新)は、情報集合の基本的(canonical)ソースに適用することができ、これによって、情報集合が配信される他の全てのデバイスに伝搬させることができる。また、コンピューティング環境を共有するデバイス同士を、共有情報集合を通じて統合して、1つのデバイスが、情報集合において特定された他のデバイスと相互作用を行うことができる。例えば、第1デバイス上に格納されているデーターに第2デバイスによってアクセスすることができ、第2デバイスによって第1デバイスを、通信管路を通じて、制御することができる。したがって、情報集合は、コンピューティング環境を、役割能力(role capabilities)および各デバイスのリソースと共に、共有するデバイスの集合体を特定し、潜在的に大多数で多様となる可能性があるデバイス群に跨って、統合コンピューティング体験を提供することができる。]
[0021] [0031]図2は、このような想定場面40の1つを示す。ここでは、コンピューティング環境は、コンピューティング環境ホスト42によってホストすることができ、コンピューティング環境ホスト42はオブジェクト階層44を格納および管理することができる。また、コンピューティング環境ホスト42は、セルフォン・デバイス46、パーソナル・ノート型コンピューター50、および公衆ワークステーション54に代わって、更に異なるアクセス特権を有する異なる種類のユーザーに代わって、異なる方法でオブジェクト階層44をレンダリングすることができる。したがって、コンピューティング環境のレンダリングは、同じアプリケーション、ユーザー・プロファイル、シェル・コンフィギュレーション、ユーザー・データー・オブジェクト等を露出する全てのデバイスに跨って、一貫性のあるコンピューティング環境を反映 (reflect)する。つまり、ユーザーは、高性能ノート型コンピューターによって全機能満載バージョン52のコンピューティング環境にアクセスすることができ、停電力セルフォン・デバイス46上において余分なものを省いたバージョン48のコンピューティング環境にアクセスすることができ、更に公衆端末54のウェブ・ブラウザー46によって、ブラウザー互換性があり秘密指向バージョン(privacy-oriented version)58のコンピューティング環境にアクセスすることができる。このようなデバイスの各々の能力がコンピューティング環境のレンダリングをサポートする範囲において、各デバイスの能力に合わせて調節されたオブジェクト階層44のレンダリングにより、一貫性のあるユーザー・インターフェースおよびデーター集合を提示することができる。コンピューティング環境に対する更新は、コンピューティング環境ホスト42に向かって逆に伝搬させることができ、他のデバイスと自動的に同期させることができる。また、種々のデバイスは、ローカルに格納されているデーターを他のデバイスと共有することによって、そして他のデバイスを制御するまたは他のデバイスによって制御されることによって、協同することもできる。したがって、コンピューティング環境は、クラウドコンピューティングアーキテクチャとして考案し提示することができ、同じコンピューティング環境に対して協同ポータル(デバイス特定プロパティを有する)のメッシュを形成する全てのデバイス(「クライアント」)に跨る、一貫性のあるレンダリングとして表されるデバイス独立表現(「クラウド」)を構成する。コンピューティング環境のアプリケーションに関して具体的には、オブジェクト階層44は、アプリケーション集合、アプリケーション・リソース、およびそれによって作成されたデーター・オブジェクトの表現を含むことができる。更に、コンピューティング環境ホスト42は、オブジェクト階層44を構成する種々のオブジェクトにサービスを適用することができ、オブジェクト階層にオブジェクトを格納する共通フォーマットが、適用されるオブジェクトの本質とは無関係に、サービスの一貫性のある可用性および適用を促進することができる。] 図2
[0022] [0032] これらの目的を促進するために、オブジェクト階層のオブジェクト群を図式に編成するオブジェクト階層体系を考案することができる。例えば、データー・オブジェクト(ファイルのような)、ユーザーおよびユーザー・アカウント、デバイス、ならびにコンピューティング環境によって生ずるイベント、更にはそれらの間の派生(derivation)、所有、および相互関係を表すために、オブジェクトを考案し構造化することができる。このオブジェクトを編成する態様は、オブジェクトの別の編成に対して、格別な利点をもたらす、および/または欠点を低減することができる。したがって、このオブジェクト階層体系は、これにしたがってオブジェクトを編成するができ、コンピューティング環境のこのようなオブジェクトの使用を考慮して考案される。例えば、それぞれのオブジェクトを、種々の許可の集合を有する1つ又は複数のユーザー・アカウント(例えば、あるオブジェクトに対してリード/ライト許可を有する第1ユーザー・アカウント、そのオブジェクトに対して読み取り専用許可を有する第2ユーザー・アカウント、およびそのオブジェクトに対して許可を有していない第3ユーザー・アカウント)と関連付けることによって、セキュリティ許可(security permission)をモデル化することができる。コンピューティング環境は、オブジェクト階層体系の構造およびセマンティクス(semantics)にしたがって、オブジェクト階層のオブジェクトを利用するように構成することができ、これによって、各デバイスのコンフィギュレーションおよび能力に適した態様であるが、それ以外ではこのようなデバイス全ての間で一貫性のある態様で、複数のデバイスにまたがって、展開可能なコンピューティング環境の提示を可能にする。]
[0023] [0033] この種のオブジェクト階層内では、1組のアプリケーションは、各アプリケーションのアプリケーション・ライフ・サイクルと一貫性のある態様で管理することができる。例えば、コンピューティング環境ホスト42は、アプリケーションの取得、アプリケーションの1つ又は複数のデバイスとの関連付け、および各デバイス上におけるアプリケーションの展開を容易にすることができる。アプリケーションをオブジェクト階層44において1組のオブジェクトとして表現することにより、共通アプリケーション管理タスクを容易にすることができる。第1の例として、オブジェクト階層44において表されている複数のコンピューター・システムおよびデバイス上において、アプリケーションを容易に展開することができ、多くの想定場面では自動的に展開することができる。例えば、第1バージョンのアプリケーションをパーソナル・ノート型コンピューター50に展開することができ、第2バージョンのアプリケーションを、公衆ワークステーション54と用いるためのウェブまたはウェブ対応アプリケーションとして展開することができ、第3バージョンのアプリケーションを、低電力セルフォン・デバイス46上で用いるための機能削減アプリケーションとして展開することができる。第2の例として、コンピューティング環境ホスト42は、オブジェクト階層44をしかるべく調節し、ホストされ展開されたバージョンのオブジェクト階層44を同期させることによってこの調節をデバイスに展開することにより、アプリケーションの更新(例えば、アプリケーション・リソースの、アプリケーションと共に用いるための新たなコンテンツの更新バージョンとのパッチング、または新たなコンテンツの展開)を容易にすることもできる。]
[0024] [0034] また、展開可能オブジェクト階層44においてアプリケーションを1組のオブジェクトとして表現することによって、新たな特徴も可能にすることができる。第1の例として、コンピューティング環境は、オブジェクト階層44の特定部分を第2ユーザーのデバイス、コンピューター・システム、またはコンピューティング環境ホスト42に展開することによって、ユーザーがアプリケーションを第2ユーザー、またはアプリケーション・セッションの一態様と共有することを可能にすることができる。例えば、第1ユーザーが1組の歌オブジェクトを選択し、メディア・プレーヤー・アプリケーションによって第1コンピューター上で再生することができ、更にメディア・プレーヤーのアプリケーション・セッションを第2ユーザーと共有することを選択することができる(例えば、メディア・プレーヤー・アプリケーションのオーディオを第2ユーザーにストリーミングすることによって)。第2の例として、オブジェクト階層の一部として、デバイスおよびコンピューター・システム間で、アプリケーションのコンフィギュレーションを同期させることができる。デバイスに独立したアプリケーション・プロパティ(例えば、スペル・チェック辞書に追加した特定用途向けの単語)を自動的にこのようなデバイスおよびコンピューター・システムの全てに伝搬させることができ、一方デバイス特定のアプリケーション・プロパティは、コンピューティング環境ホスト42によってそれぞれのデバイスに合わせて指定することができる。このように、コンピューティング環境ホスト42のアプリケーション管理サービスは、一人以上のユーザーが操作する種々のコンピューター・システムおよびデバイス上におけるアプリケーションの発見、展開、使用、および除去をサポートすることができる。これらの作業の多くの部分は、オブジェクト階層44を調節し、その展開を、その中に表されている種々のデバイスに同期させることによって実行することができ、自動化プロセスとして、コンピューティング環境およびユーザー体験全体の一貫性に多大な改良を得ることができる。]
[0025] [0035]図3は、アプリケーション・ストアに格納されているアプリケーションの、デバイス上にコンピューティング環境を表すオブジェクト階層への展開を管理する方法例60として、これらの技法の一実施形態を示す。図2を参照すると、この方法例60は、セルフォン・デバイス40、ノート型コンピューター50、および公衆ワークステーション54のような、1つ又は複数のデバイス上においてアプリケーションをインストールし管理するために利用することができる。その際、デバイスに配信されている(少なくとも部分的に)展開可能オブジェクト階層44においてそのアプリケーションを表現する。方法例60は、62において開始し、アプリケーションをデバイスに展開する要求を受けるステップ(64)を含む。この要求は、アプリケーションをインストールしたいコンピューティング環境のユーザーによって発生すること、デバイス上におけるコンピューティング環境の表現において実行中のプログラムによって発生すること、少なくとも1つのアプリケーションが予めインストールされている新たなコンピューティング環境を発生するように構成されているプログラムによって発生すること等ができる。また、方法例60は、アプリケーション・ストアからアプリケーションを取得するステップ(66)も含む。アプリケーションがウェブ・アプリケーションである場合、取得するステップ66は、単に(例えば)提供されるURLにおいてアプリケーションの可用性を検証するだけでよい場合もある。また、方法例60は、オブジェクト階層において表されているデバイスをアプリケーションにマッピングするステップ(68)も含む。マッピングするステップ68は、オブジェクト階層内にあるデバイスの表現を、オブジェクト階層内にあるアプリケーションの表現と関連付けて、デバイス等に関するアプリケーションについてのオブジェクト階層における1組のコンフィギュレーション情報を作成することを含むことができる。] 図2 図3
[0026] [0036] また、図3の方法例60は、オブジェクト階層内にアプリケーションを展開するステップ70も含む。展開するステップ70は、オブジェクト階層内においてアプリケーションの表現を作成し、オブジェクト階層のアプリケーション表現において1つ又は複数のエクゼキュータブル・バイナリーを表し、更にデバイス等に関してアプリケーションのコンフィギュレーションを設定することを含むことができる。ウェブ・アプリケーションについては、展開するステップ70は、例えば、デバイスと関連のあるアプリケーション・ランチャー表現に、ウェブサイトへのリンクを挿入すること、および/またはセッション間におけるウェブ・アプリケーションの永続性を促進するために、デバイス上に1つ又は複数のクッキーを作成することを含むことができる。また、方法例60は、オブジェクト階層の少なくとも一部をデバイスに送信するステップ72も含む。例えば、ノート型コンピューター50のような高性能コンピューター・システムは、オブジェクト階層の最大バージョンを受信することができ、一方比較的停電力のセルフォン・デバイス46は、オブジェクト階層の内、セルフォン・デバイス46に関連のある部分だけを受信すればよい。この部分は、セルフォン・デバイス46と互換性のある新たなアプリケーションの展開を含む。アプリケーションをデバイスと関連付けるようにオブジェクト階層を構成し、オブジェクト階層をデバイスに展開し終えると、方法例60はデバイスに関して展開したアプリケーションの管理を遂行し、したがって74において終了する。] 図3
[0027] [0037]図4は、アプリケーション・ストア84に格納されているアプリケーションの、少なくとも1つのデバイス上においてコンピューティング環境を表すオブジェクト階層82への展開を管理する例示的システム86として具体化した、これらの技法の第2実施形態を示す。この想定場面80では、3つの展開可能なアプリケーション、即ち、計算器アプリケーション、カレンダー・アプリケーション、およびメディア・プレーヤー・アプリケーションが関与する。これらのアプリケーションは、3つのデバイス、セルフォン・デバイス、ノート型コンピューター・デバイス、および公衆ワークステーション上に表されるコンピューティング環境内で利用可能にすることができる。この想定場面80内では、前述のアプリケーションは、少なくとも1つのアプリケーションを表すアプリケーション・ストア86によってホストされる。これらのアプリケーションは、コンピューティング環境内において、そしてオブジェクト階層82のコンフィギュレーションを再設定することによってそのコンピューティング環境をレンダリングすることができるデバイス上において展開することができる。] 図4
[0028] [0038] この想定場面80内では、アプリケーション管理システム86は、オブジェクト階層内において1つ又は複数のアプリケーションの展開を遂行するように動作することができる。例示的システム86は、アプリケーション取得コンポーネント88を備えている。アプリケーション取得コンポーネント88は、アプリケーションをインストールする要求を受け、アプリケーション・ストア84からそのアプリケーションを取得するように構成されている。また、アプリケーション取得コンポーネント88は、要求がいずれの必要条件(例えば、アプリケーションは要求されたデバイス上で実行できるか否か、ユーザーはアプリケーションをインストールし実行することを許可されているか、ユーザーの種々のセキュリティ特権および使用許諾問題に関する必要条件等)も満たすか否か判断することができる。また、図4の例示的システム86はアプリケーション・マッピング・コンポーネント90も含む。アプリケーション・マッピング・コンポーネント90は、オブジェクト階層82内に表されている少なくとも1つのデバイスを、少なくとも1つのインストールされているアプリケーションにマッピングするように構成されている。例えば、計算器アプリケーションが既にオブジェクト階層82の中に含まれている場合、アプリケーション・マッピング・コンポーネント90は、オブジェクト階層82内に、計算器アプリケーションと、そのアプリケーションを提供しようとしている1つ又は複数のデバイスとの間の関連付けを作成することができる。計算器アプリケーションが未だオブジェクト階層82の中に含まれていない場合、例示的システム86は、マッピングを実行する前に、例えば、エクゼキュータブル・バイナリーまたはウェブ・アプリケーション・ウェブサイトへのリンクの表現をオブジェクト階層82の中にコピーすることによって、計算器アプリケーションの表現をオブジェクト階層82の中に作成することもできる。また、例示的システム86は、アプリケーション展開コンポーネント92も含む。これは、少なくとも1つのインストールされているアプリケーションをオブジェクト階層82の中に展開するように構成されている。展開には、例えば、新たにマッピングされたデバイスについてのデバイス特定コンフィギュレーション情報をオブジェクト階層の中に作成すること、新たにマッピングされたデバイスをデバイス独立コンフィギュレーション情報と関連付けること、1つ又は複数のデバイス上でレンダリングされるアプリケーション・ランチャーにアプリケーションを挿入すること等を必要とすることがある。オブジェクト階層82の中にあるデバイスの表現を、デバイスによってレンダリングされたコンピューティング環境の中に表されているアプリケーション集合の表現に関連付けた後、例示的システム86は、これによって、コンピューティング環境を表すオブジェクト階層において展開されたアプリケーションの管理を遂行する。] 図4
[0029] [0039] 本明細書において記載する技法は、多くの態様に変形があっても実現することができ、一部の変形は、これらおよびその他の技法のその他の変形に関して、更に別の利点を表すことおよび/または欠点を縮減することもあり得る。これらの変形は、図3の方法例60および図4の例示的システム86のように、種々の実施形態に含まれる可能性があり、更にこのような様々な追加利点および/または縮減された欠点を公表する(present)ために、他のこのような変形と互換性があるとよい。したがって、当業者はこのような多くの実施形態を、本明細書において論ずる技法にしたがって考案することができる。] 図3 図4
[0030] [0040] これらの技法の実施態様間で多様に変化する可能性がある第1の態様は、アプリケーション管理サービスを提供するアプリケーション管理サーバーのアーキテクチャに関する。図4に示すように、アプリケーション管理システム84は、種々のアプリケーションを有するアプリケーション・ストア82と相互作用することができ、その中に格納されているアプリケーションを要求し受け取ることができ、更にそのアプリケーションをオブジェクト階層82に展開することができる。この想定場面80では、アプリケーション管理システム84は、1つ又は複数のアプリケーション・ストアおよびコンピューティング環境ホスト86間において単体のインターフェースとして具体化されている。しかしながら、他のアーキテクチャおよびシステム分解(system factoring)も、これらの技法を実現するのに適している場合もある。] 図4
[0031] [0041]図5は、第2のアーキテクチャ例100を示す。ここでも、アプリケーション管理サービス86は、アプリケーション・ストア84としての役割を果たし、したがって、計算器アプリケーション102およびカレンダー・アプリケーション104のような、種々のアプリケーションを収容する。これらのアプリケーションは、オブジェクト階層82に展開することができる。この実施形態は、アプリケーション取得サービスと、展開に利用可能なアプリケーションとの統合緊密化という利点を表すことができる。] 図5
[0032] [0042]図6は、第3のアーキテクチャ例110を示す。ここでは、コンピューティング環境ホスト42は、アプリケーション管理サービス86を組み込む。したがって、コンピューティング環境ホスト42は、オブジェクト階層82と、アプリケーション取得コンポーネント88、アプリケーション・マッピング・コンポーネント90、およびアプリケーション展開コンポーネント92というような、アプリケーション管理サービス86のサービスとの双方を格納することができる。この第3のアーキテクチャ例110では、デバイス上に表されたコンピューティング環境内においてユーザーによって発せられた要求によってというようにして、アプリケーション112をデバイスから直接受け取ることができる。コンピューティング環境ホスト42は、この要求を受けて、アプリケーション管理サービス86のコンポーネントによってその要求を処理し、コンピューティング環境ホスト42に格納されているオブジェクト階層82を更新することができる。次いで、更新されたオブジェクト階層82をデバイスと同期させて、アプリケーションのデバイスへの展開を完了することができる。当業者であれば、これらおよびその他のシステム分解も、本明細書において論ずる技法を実現する間に、考案することができよう。] 図6
[0033] [0043] これらの技法の実施態様間で多様に変化する可能性がある第2の態様は、取得、マッピング、および展開を含む、アプリケーション管理の基本コンポーネントの多様な変化に関する。この態様の第1の変形として、アプリケーションを取得するには、通例、アプリケーションを展開する要求を受け取り、特定のデバイスに関してオブジェクト階層に展開しようとするアプリケーションを取得する必要がある。しかしながら、取得は、アプリケーションについてのエンド・ユーザー・ライセンス契約の条件を表示するというように、デバイスを通じてユーザーにアプリケーション・ライセンスを提示することを含む場合もある。また、取得は、展開の必要条件として、アプリケーション・ライセンスを受け入れることをユーザーに要求することを含む場合もあり、アプリケーション・ライセンスの受諾を受けたときに、取得は、アプリケーション・ライセンス・サーバーに通知することによってというようにして、アプリケーション・ライセンスの受諾を記録することを含む場合もある。この受諾は、ユーザーからの承認として、または例えば、ある特定のアプリケーション・ライセンスの下で(例えば、GNU公開ライセンスの特定バージョンの下で与えられるあらゆるアプリケーション)いずれかのアプリケーションの受諾を予め許可している場合、自動受諾として受けることもあり得る。また、取得は、アプリケーションに対するライセンスの電子商取引による購入というように、少なくとも1つのデバイスのユーザーとの取得手続きを仲介することを含む場合もある。また、取得は、アプリケーションのユーザーを表すユーザー・アカウントを発生することを含む場合もある。これは、ウェブメール・サーバー上に完全にホストされコンピューティング環境におけるブラウザーを通じて提供されるウェブメール・アプリケーションのように、ウェブ・アプリケーションへのアクセスを取得するには特に有利であると考えられる。]
[0034] [0044] この第2の態様の第2の変形として、アプリケーションのマッピングは、通例、そのアプリケーションを、オブジェクト階層において表されている1つ又は複数のデバイスと関連付けることを含む。しかしながら、マッピングは、アプリケーションがデバイスと互換性のあるバージョンで入手可能か否か、そしてアプリケーションまたはその異形(早期バージョンのような)が既にデバイス上で利用可能になっているか否かというような、デバイス特定状態の検査を含むこともできる。また、マッピングは、デバイスと互換性があるかもしれないアプリケーション・バイナリーの新バージョン、またはアプリケーションが依存しデバイスに展開することができる追加のコンポーネント(例えば、別のサーバーから読み出すことができる支援ランタイム(supporting runtime))というような、新たなデバイスへのアプリケーションのマッピングを促進するための追加のリソースを取得することを含んでもよい。また、マッピングは、アプリケーション活性化サーバーによるアプリケーションの活性化を含むこともできる。アプリケーション活性化サーバーは、起動時にデバイス上においてアプリケーションによって有効性が判断される認証済み証明書を与えることによってというようにして、特定のデバイス上におけるアプリケーションの実行を許可することができる。]
[0035] [0045] この第2の態様の第3の変形として、アプリケーションの展開は、通例、アプリケーションのコンポーネントの表現をオブジェクト階層に挿入することによってというようにして、オブジェクト階層内にアプリケーションを展開することを含む。典型的に編成されたアプリケーションであっても、多数の方法で構造化することができる。小さなユーティリティが1つのエクゼキュータブル・バイナリーを構成することができ、このエクゼキュータブル・バイナリーを全体的または部分的にコンパイルすることができ、あるいは各デバイス上でローカルにコンパイルされるソース・コードとして含めることができる。このエクゼキュータブル・バイナリーは、例えば、ソース・コード・モジュール、解析ツリー、部分的にコンパイルされたバイナリーを表す中間言語命令、全体的にコンパイルされたバイナリー等として表すことができる。ユーティリティを大きくすれば、1つ又は複数のエクゼキュータブル・バイナリー、グローバル・アセンブリ・キャッシュに登録することができる共有アセンブリ、アイコン、サウンド・オブジェクト、写真、文書、およびビデオのようなアプリケーション・リソース、ヘルプ・ファイル、リレーショナル・データーベースのような、1つ又は複数の構造化データー・ストアに格納されているデーター・リソース、ワープロ・アプリケーションにおけるスペル・チェック・ツールのための言語辞書ファイルのような付属アプリケーション・リソース、内部に指定されているリソースのインデックスとしての役割を果たすアプリケーション・マニフェスト(manifest)等というような、1組のリソースを構成することもできる。更に、アプリケーションは、様々なバージョンのエクゼキュータブル・バイナリーを含むことができ、その各々は、特定のプラットフォームを目的とすることができる。例えば、あるアプリケーションは、ノート型コンピューター50のようなより強力なデバイス上において用いるために全機能満載バージョンを含み、更に低電力セルフォン・デバイス46上において用いるために縮減機能バージョンを含むことができる。また、アプリケーションは、様々なコンフィギュレーション情報集合を含むこともでき、その各々は特定のプラットフォームを目的とする。アプリケーションは、単体のインストーラー・パッケージとして、またはデバイス系インストーラー(device-based installer)によって展開することができるインストール可能なアーカイブとして、またはいずれの場所でも利用することができる1つ又は複数のリソースの集合等として表すことができる。]
[0036] [0046] また、オブジェクト階層は、従来とは異なる構造のアプリケーションを含むこともできる。例えば、ゲーム・アプリケーションは、複雑な三次元環境およびその中に表現されるオブジェクトを構築するためのビットマップ・テクスチャーおよびメッシュのような大多数のグラフィクス・リソースを含む場合がある。ウェブ対応アプリケーション(web-enabled application)は、1組のウェブ・ページを含むことがあり、これらのウェブ・ページはインライン・コードの部分を収容することができ、またはソース・コードまたはコンパイル形態で含まれるJava(登録商標)オブジェクトのような、外部コード・リソースを参照することができる。また、このようなアプリケーションは、単にこのようなリソースが入手可能なウェブサイトへの参照として、表すこともできる。また、ウェブ対応アプリケーションは、拡張可能アプリケーション・マークアップ言語(XAML)のようなマークアップ言語によって構造化することもできる。マークアップ言語は、デバイス上においてコンパイルすること、あるいはアプリケーションとしてまたはウェブ・ブラウザー内にホストされているアプレットとしてインタープリター式に実行することができる。最後に、ウェブ・アプリケーションは、単に、当該アプリケーションの一部または全部を展開することができる1つ又は複数のウェブサイトを参照する1つ又は複数のURLとして表すこともでき、これらのURLには、デバイス上でウェブ・ブラウザーによってアクセスすることができる。代わりにまたは加えて、セッション間でウェブ・アプリエーションの状態を存続させるためにローカルに格納することができるクッキーのような、何らかのリソースをデバイス展開のために含めることができる。]
[0037] [0047]アプリケーションを構成するリソースは多様である可能性があるので、オブジェクト階層におけるアプリケーションの展開は、同様にロバストであるとよい。例えば、テキスト・リソースは、平文として含ませることができ、あるいは汎用または特殊目的の圧縮ユーティリティによって圧縮することもできる。バイナリー・リソースは、シリアル化したバイナリー・コードとして提示することができ、バイナリー圧縮ユーティリティによって圧縮することができ、コード変換する(例えば、UuencodeまたはMIMEによって)こと等もできる。階層的に編成されたオブジェクトは、XMLのような階層フォーマット化にしたがって構造化することができ、あるいは1つの階層オブジェクトとしてシリアル化することもできる。大きなオブジェクトは、原子ユニットとして含め、圧縮し、コード変換し(例えば、空間を保存するために、ムービー・ファイルをもっと低いビットレートで符号化し直すことができる)、ある時間の間にまたは特別な目的のため等でデバイスに個々に送信することができる部分にセグメント化することができる。リソースは、オブジェクト階層に含めることができ、または必要に応じてアクセスすることができるリソースをホストするサーバーへの参照として挿入することができる。多数のオブジェクトの大きな集合は、アーカイブ(例えば、数千個のオブジェクトを収容した圧縮ファイル)として含めることができる。ウェブ系アプリケーションは、当該アプリケーションのコンポーネントを入手することができる1つ又は複数のURLとして表すことができる。代わりにまたは加えて、ウェブ・アプリケーションのスナップショットを取り込み、オブジェクト階層の中に含ませることによって、当該アプリケーションのキャッシュ・バージョンを備える、またはアプリケーションへのオフライン・アクセスを可能にすることもできる。当業者であれば、オブジェクト階層においてアプリケーションを表現するための多くの技法を、本明細書において論ずる技法を実現する間に、考案することができよう。]
[0038] [0048]アプリケーションをオブジェクト階層において表現することに加えて、展開は、デバイスに関しておよび/またはユーザーに関して、アプリケーションのコンフィギュレーションを設定することを含むこともできる。例えば、新たな1組のコンフィギュレーション情報をデバイスに合わせて定式化することができ、またはコンフィギュレーション設定のライブラリーの中にあるしかるべき1組のコンフィギュレーション情報を、デバイスによる使用に合わせて指定することができる。図7は、このような1つの想定場面120を示す。ここでは、オブジェクト階層82は、カレンダー・アプリケーションの表現を含む。このカレンダー・アプリケーションは、2つのエクゼキュータブル・バイナリー(ローカル・ネーティブ実行のための1つのコンパイルしたエクゼキュータブルと、標準的なウェブ・ブラウザーによる低速であるが標準化を重視したアクセスのための1つのクライアント側ブラウザー・スクリプト)と、2つのコンフィギュレーション設定(高性能デバイスのための全機能コンフィギュレーションと、低電力移動体デバイスのための携帯用コンフィギュレーション設定)とを備えている。また、オブジェクト階層82は、ユーザーが選択した好ましいカラー方式というような、いずれのデバイスでも用いることができるようにするためのデバイス独立設定値を備えたコンフィギュレーション設定も含む。また、オブジェクト階層82は、コンピューティング環境をレンダリングすることができる2つのデバイス、即ち、低電力セルフォン・デバイス46および高性能ノート型コンピューター50の表現も収容する。] 図7
[0039] [0049] これらのデバイスに合わせてオブジェクト階層82の中にアプリケーションを展開する際に、アプリケーション展開コンポーネント92は、各デバイス上における個々の使用に合わせてアプリケーションのコンフィギュレーションを設定することができる。例えば、カレンダー・アプリケーションを、セルフォン・デバイス46のウェブ・ブラウザー・アプリケーション内において実行することができるクライアント側ブラウザー・スクリプト・エクゼキュータブル・バイナリーと、そして低電力デバイス用形態用コンフィギュレーション設定と関連付けることによって、セルフォン・デバイス46に合わせて展開することができる。同様に、カレンダー・アプリケーションを、コンパイルしたエクゼキュータブル・バイナリーと、そしてノート型コンピューター50がレンダリングすることができる計算集約的な機構を設けることができる全機能コンフィギュレーション設定と関連付けることによって、ノート型コンピューター50に合わせてカレンダー・アプリケーションを展開することができる。しかしながら、双方のデバイスは、1組の一貫したデバイス独立機能を提示するために、デバイス独立コンフィギュレーション設定を組み込むことができ、これによって計算メッシュ(computing mesh)のこのようなデバイス全ての間において一貫性のあるコンピューティング環境を促進する。当業者であれば、オブジェクト階層82におけるアプリケーションの取得、マッピング、および展開における更に別の変形も、本明細書において論ずる技法を実現する間に、考案することができよう。]
[0040] [0050] これらの技法の実施態様間で多様に変化する可能性がある第3の態様は、このような実施形態の基本コンポーネントに追加することができる追加の機構に関する。基本的な管理サービス(取得、マッピング、および展開)に加えて、アプリケーションの管理に追加のサービスを提供することができ、アプリケーション・ライフ・サイクルの管理においてユーザーおよびコンピューター・システムに役立つことができる。]
[0041] [0051] この第3の態様の第1の変形として、アプリケーション管理サービスは、図6の第3のアーキテクチャ例110に示すような、コンピューティング環境ホストとしての役割を果たすこともできる。この第1の変形では、アプリケーション管理サービスは、更に、オブジェクト階層を格納するように構成されているオブジェクト階層ストアと、オブジェクト階層の少なくとも一部をデバイスに(例えば、更新したオブジェクト階層を、各デバイス上に格納されているオブジェクト階層と同期させることによって)送信するように構成されているオブジェクト階層送信コンポーネントとを備えている。展開するアプリケーションを含むオブジェクト階層の部分をデバイスに送信すると、アプリケーションのデバイスへのインストールおよび展開を行うことができる。] 図6
[0042] [0052] この第3の態様の第2の変形として、アプリケーション管理サービスは、ユーザーに関心があるかもしれないアプリケーションの発見を容易にすることもできる。例えば、アプリケーションのオブジェクト階層への展開を管理する方法(図3の方法例60のような)は、照会の(querying)態様を含むことができ、この方法は、ユーザーからアプリケーションの照会を受けたときに、そのアプリケーションの照会を満たすアプリケーションを選択し、この選択したアプリケーションをユーザーに紹介するように構成されている。同様に、アプリケーションのオブジェクト階層への展開を管理するシステム(図4の例示的システム86のような)は、アプリケーション発見コンポーネントを含むことができる。アプリケーション発見コンポーネントは、ユーザーからアプリケーションの照会を受け、そのアプリケーションの照会を満たすアプリーションを選択し、選択したアプリケーションをユーザーに紹介するように構成することができる。次いで、ユーザーは、選択されたアプリケーションから1つ又は複数を取得するように選別することができ、アプリケーション管理システムは、そのアプリケーションをオブジェクト階層に展開することができる。] 図3 図4
[0043] [0053]図8は、このような1つの想定場面130を示す。ここでは、ユーザー132が、ユーザーのセルフォン・デバイス46と互換性があるかもしれないオーディオ・プレーヤー・アプリケーションを特定することを望んでいる。したがって、ユーザー132は、セルフォン・デバイスと互換性のあるメディア・プレーヤー・アプリケーションについての照会というような、アプリケーション照会136を、アプリケーション管理サービス86のアプリケーション発見コンポーネント134に発行することができる。アプリケーション発見コンポーネント134は、アプリケーション・ストア84と通信して、セルフォン・デバイス用オーディオ・プレーヤー・アプリケーションおよびセルフォン・デバイス用ビデオ・プレーヤー・アプリケーションというような、アプリケーション照会136を満たすアプリケーションを特定することができる。したがって、アプリケーション発見コンポーネント134は、これらのアプリケーションをユーザー132に紹介する応答138を供給することができる。ユーザー132は、発見されたアプリケーションの内、セルフォン・デバイス46に展開しようとする1つ又は複数の選択140によって、アプリケーション管理サービス86に回答することができる。次いで、アプリケーション管理サービス86は、選択されたアプリケーション(この想定場面130では、セルフォン・デバイス用オーディオ・プレーヤー・アプリケーション)を取得することができ、そのアプリケーションをオブジェクト階層142に展開することができる。次いで、セルフォン・デバイス46に送信して、選択されたアプリケーションの展開を完了することができる。当業者であれば、アプリケーションの発見を容易にするその他の手法も、本明細書において論ずる技法を実現する間に、考案することができよう。] 図8
[0044] [0054] この第3の態様の第3の変形として、アプリケーション管理サービスは、アプリケーションの起動を容易にすることもできる。例えば、アプリケーション管理サービスを具体化する例示的システムは、アプリケーション起動コンポーネントを含むことができる。このアプリケーション起動コンポーネントは、少なくとも1つのデバイス上においてアプリケーションを起動するように構成することができる。アプリケーション起動コンポーネントは、例えば、デバイスに合ったプラットフォームを設け、アプリケーションの実行を容易にするように構成されているランタイム(runtime)を備えることができる。例えば、アプリケーションをサービスにおいてクライアント側ブラウザー・スクリプトとして展開することができ、アプリケーション管理サービスは、オブジェクト階層と共に、ブラウザー・スクリプトをインタープリター式で実行することができるブラウザー・ランタイムを含むことができる。別の例として、アプリケーションをソース・コードとして表すことができ、アプリケーション起動コンポーネントは、デバイス特定コンパイラを備えることができる。デバイス特定コンパイラは、デバイス上でアプリケーションを起動したときに、ソース・コードをコンパイルしてエクゼキュータブル・バイナリーとし、これをデバイス上で実行することができる。更に、アプリケーション起動コンポーネントは、コンパイルしたエクゼキュータブル・バイナリーを、アセンブリ・キャッシュの中にというように、格納することもでき、アプリケーションを再度コンパイルする代わりに、格納したエクゼキュータブル・バイナリーを取り出すことによって、アプリケーションを起動するその後の要求に応答することができる。第3の例として、ウェブ対応アプリケーションは、リモート・リソースにアクセスするように構成されているクライアント側フロント・エンドを備えることができ、アプリケーション起動コンポーネントは、リモート・リソースに接続し、アプリケーションの起動時にデバイスに対する入手可能性を検証しようとすることもできる。当業者であれば、デバイス上におけるアプリケーションの起動を容易にする多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。]
[0045] [0055] この第3の態様の第4の変形として、アプリケーション管理サービスは、更に、アプリケーションの態様(aspects)を他のユーザーと共有するのを容易にすることもできる。このようなアプリケーションの共有は、多くの想定場面において行われる可能性がある。第1の例として、共有は、アプリケーション全体(それと関連のある全てのリソースおよびデーター・オブジェクトを含む)の共有を必要とする場合がある。第2の例として、共有は、あるバージョンのアプリケーションを他のユーザーと共有することを伴う場合もある。例えば、第1ユーザーがアプリケーションを用いるライセンスを購入しており、第2ユーザーにそのアプリケーションをライセンスすることを進めるために、アプリケーションの一部の特徴を実演することができる縮減機能バージョンで、そのアプリケーションを第2ユーザーと共有することができる。第3の例として、共有は、アプリケーションによって作成されたメディア・オブジェクトのような、アプリケーションと関連のある1つ又は複数のデーター・オブジェクトを共有することを伴う場合もある。つまり、第2ユーザーが同じアプリケーションまたは別のアプリケーションを用いて、第2ユーザーのコンピューティング環境内にメディア・オブジェクトをレンダリングすることができる。第4の例として、共有は、アプリケーションのコンフィギュレーションを他のユーザーと共有することを伴う場合もある。例えば、ソフトウェア開発チームの数人の部員が、ソフトウェアの開発においてチームとして作業しながら、統合開発環境の内特定のコンフィギュレーションを利用することもあり得る。第5の例として、共有は、アプリケーションの一セッションを他のユーザーと共有することを伴う場合もある。例えば、二人のユーザーがテキスト文書の準備において協力することが考えられ、第1ユーザーがワープロ・アプリケーションの一セッションを第2ユーザーと共有して、これらのユーザー間における生の対話処理を促進することができる。これらの共有の想定場面は、コンピューティング環境(1つのオブジェクト階層によって表される)の数人のユーザー間や、2つ以上のコンピューティング環境(多数のオブジェクト階層によって表される)のユーザー間において起きる可能性があり、あるいはファイル転送プロトコル(FTP)のような共通の通信プロトコルを通じて、共有するコンピューティング環境のデーター・オブジェクトを供給することによって、コンピューティング環境を表すオブジェクト階層の一部を、分からないように表されているコンピューティング環境のユーザーと共有するときにも起こる可能性がある。当業者であれば、これらおよびその他の共有の想定場面を、本明細書において論ずる技法を実現する間に、考案することができよう。]
[0046] [0056]図9は、アプリケーション共有の想定場面150を示す。ここでは、第1オブジェクト階層152の第1ユーザーが、メディア・プレーヤー・アプリケーションと、種々のアーティストによって作成された種々の歌という形態のいくつかのメディア・オブジェクトを取得しており、このようなメディア・オブジェクトは忠実性高く符号化されている(即ち、320kbpsの符号化速度)。また、第1ユーザーはポッドキャストのようなメディア・プレーヤー・セッションも作成しており、これは、第1オブジェクト階層152のメディア・セクションにおいて表されているオブジェクトの内数個を参照する。第1ユーザーはこのポッドキャストを、第2オブジェクト階層154の第2ユーザーと共有することを望むかもしれない。したがって、アプリケーション共有は、このメディア・プレーヤー・セッションを第1オブジェクト階層152から第2オブジェクト階層154にコピーすることを必要とすることもある。メディア・プレーヤー・セッションは、第1オブジェクト階層152に格納されているいくつかのメディア・オブジェクトを参照するので、このアプリケーション共有は、メディア・オブジェクトを第2オブジェクト階層154にコピーすることによって、その中で参照されているメディア・オブジェクトを共有することを必要とする場合もある。しかしながら、メディア・オブジェクトに付随するディジタル権利は、忠実度を低くしなければ、メディア・オブジェクトの他のオブジェクト階層への送信を許可しない場合もある。したがって、コンピューティング環境は、第2オブジェクト階層に、品質を低下させてコード変換したメディア・オブジェクト(例えば、24kbps符号化速度)のバージョンを送信すればよい。加えて、第2オブジェクト階層154は、メディア・オブジェクトによって表されるタイプのオーディオについては、メディア・プレーヤー・アプリケーションを含まなくてもよい。したがって、第1オブジェクト階層152は、メディア・プレーヤー・アプリケーションの1つのバージョンを第2オブジェクト階層154と共有すればよい。しかしながら、第1ユーザーが取得したメディア・プレーヤー・アプリケーションのエンド・ユーザー・ライセンス契約にしたがって、縮減機能バージョンを第2ユーザーに送信することができる。このように、アプリケーション・セッションに関するコンポーネントのディジタル権利を遵守しつつ、第1オブジェクト階層152の一部を第2オブジェクト階層154に送信することによって、アプリケーション、それによってレンダリングされるメディア・オブジェクト、および第1ユーザーが発生したアプリケーション・セッションを、第2ユーザーと自動的に共有することができる。] 図9
[0047] [0057] この第3の態様の第5の変形として、アプリケーション管理サービスは、新たなコンテンツによるアプリケーションの更新を容易にすることができる。バイナリーをパッチングし、新たなリソースを挿入し、既存のリソースを変更または除去することによって、アプリケーションを新たなバージョンに、そして新たなコンテンツで更新することが多い。このような更新は、アプリケーション管理サービスによって、アプリケーション更新を入手し、オブジェクト階層において表されているアプリケーションに更新を展開することによって(例えば、オブジェクト階層に収容されているアプリケーション・リソースを更新すること、および/または新たなリソースを新たなオブジェクトとしてオブジェクト階層に挿入することによって)実行することができる。これらの更新は、ユーザーの要求時に適用することができる。ユーザーは、アプリケーションによって露出されることになる新たなコンテンツを既に取得していることもある。また、更新は、アプリケーション・ストアへの照会によって、アプリケーション管理サービスによって読み出すこともでき、あるいはアプリケーション・ストアまたは管理運営サーバーによってアプリケーション管理サービスにプッシュすること等ができる。更新されたオブジェクト階層は、次いで、1つ又は複数のデバイスに送信することができ、これによって、コンピューティング環境のアプリケーションの更新を、ユーザー関与に頼る程度を低減して遂行することができる。当業者であれば、オブジェクト階層において表されているアプリケーションを更新する多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。]
[0048] [0058] この第3の態様の第6の変形として、アプリケーション管理サービスは、コンピューティング環境からのアプリケーションの取り消しも許可することができる。この取り消しには、アプリケーションのデバイスへのマッピングを除去する、アプリケーション活性化サーバーの許可済みデバイス・リストにおいてデバイスの許可を廃止する(de-authorize)、デバイスからアプリケーション・リソースを除去する(例えば、そのデバイスから、オブジェクト階層の内アプリケーション・リソースを収容する部分を制止することによって)、ならびにアプリケーション・リソースの全てをオブジェクト階層および全てのマッピングされたデバイスから除去することによってアプリケーションを完全に使用廃止するというように、多くの想定場面が関与する可能性がある。取り消しは、1つ又は複数のデバイスからアプリケーションをアンインストールしたいユーザーの要求によって、または期間限定ソフトウェア・ライセンスの満了時に、またはデバイスを計算メッシュから除去するとき等に行うことができる。この変形の一実施形態例として、アプリケーション管理システムは、これらの態様のいずれにおいても、少なくとも1つのデバイスからアプリケーションを取り消すように構成されているアプリケーション取り消しコンポーネントを含むことができる。当業者であれば、オブジェクト階層によって表されるコンピューティング環境内部からアプリケーションを取り消す多くの方法を、本明細書において論ずる技法を実現する間に、考案することができよう。]
[0049] [0059] これらの態様のこれらの変形は、本明細書において論じた技法の多くの実施形態に含めることができ、図3の方法例60および図4の例示的システム86を含む。更に、様々なこのような変形は、組み合わせて実現することもでき、これらの別の変形およびこれらの技法の別の態様と共に実現して、図3および図4に示したより基本的な実施形態に関して、様々な利点を得ること、および/または欠点を縮減することができる。また、組み合わせによっては、相乗効果が得られる場合もある。例えば、アプリケーション発見コンポーネントをアプリケーション取得コンポーネントに協同的にリンクして、アプリケーションの調達の内、発見、購入、ライセンス受諾、およびユーザー・アカウント作成を、統合ユーザー体験として提示することもできる。] 図3 図4
[0050] [0060]図10は、少なくとも1つのデバイス(セルフォン・デバイス46、ノート型コンピューター50、および公衆ワークステーション54のような)上においてコンピューティング環境を表すオブジェクト階層44において、アプリケーションの展開を管理する例示的システム160を示す。図10の例示的システム160は、本明細書において論じた変形の多くを具体化する。図10の例示的システム160は、オブジェクト階層44を格納するように構成されているオブジェクト階層ストア82と、少なくとも1つのアプリケーションを表すアプリケーション・ストア84とを含み、それぞれのアプリケーションが少なくとも1つのアプリケーション・リソースを構成する。また、例示的システム160は、ユーザーからアプリケーション照会を受けて、そのアプリケーション照会を満たすアプリケーションを選択し、選択したアプリケーションをユーザーに紹介するように構成されているアプリケーション発見コンポーネント134も含む。また、例示的システム160は、アプリケーション取得コンポーネント88も含む。アプリケーション取得コンポーネント88は、アプリケーションをインストールする要求を受け、デバイスを通じてユーザーにアプリケーション・ライセンスを提示し、ユーザーからアプリケーション・ライセンスの受諾を受けたときに、アプリケーション・ライセンスの受諾を記録するように構成されている。また、アプリケーション取得コンポーネント88は、アプリケーションのユーザーを表すユーザー・アカウントを発生し、少なくとも1つのデバイスのユーザーとの取得トランザクションを仲介するように構成されている。アプリケーション発見コンポーネント134およびアプリケーション取得コンポーネント88は、調和して、典型的なアプリケーション・ライフ・サイクルにおけるアプリケーションの調達を容易にする。] 図10
[0051] [0061] また、図10の例示的システム160は、アプリケーション・マッピング・コンポーネント90も含む。アプリケーション・マッピング・コンポーネント90は、オブジェクト階層44において表されている少なくとも1つのデバイスを、少なくとも1つのインストールされているアプリケーションにマッピングするように構成されている。また、例示的システム160はアプリケーション展開コンポーネント92も含む。アプリケーション展開コンポーネント92は、当該デバイスおよびそのデバイスのユーザーの内少なくとも1つに関してアプリケーションのコンフィギュレーションを設定することによって、少なくとも1つのインストールされたアプリケーションをオブジェクト階層44の中に展開するように構成されている。アプリケーション・マッピング・コンポーネント90およびアプリケーション展開コンポーネント92は、調和して、典型的なアプリケーション・ライフ・サイクルにおける、オブジェクト階層内のアプリケーションのインストールを容易にする。] 図10
[0052] [0062] また、図10の例示的システム160は、アプリケーション起動コンポーネント162も含む。アプリケーション起動コンポーネント162は、少なくとも1つのデバイス上においてアプリケーションを起動するように構成されている。また、例示的システム160はアプリケーション共有コンポーネント164も含む。アプリケーション共有コンポーネント164は、ユーザーとアプリーションを共有する要求を受けて、このアプリケーションを共有する要求を受けたときに、アプリケーション、アプリケーション・セッション、アプリケーション・コンフィギュレーション、およびアプリケーションが発生した少なくとも1つのデーター・オブジェクトの内少なくとも1つを構成する、オブジェクト階層の一部をユーザーと共有するように構成されている。また、例示的システム160は、アプリケーション更新コンポーネント166も含む。アプリケーション更新コンポーネント166は、オブジェクト階層44において少なくとも1つのアプリケーション・リソースを更新するように構成されている。アプリケーション起動コンポーネント162、アプリケーション共有コンポーネント164、およびアプリケーション更新コンポーネント166は、調和して、典型的なアプリケーション・ライフ・サイクルにおける1つ又は複数のデバイス上でのアプリケーションの実行を容易にする。] 図10
[0053] [0063] また、図10の例示的システム160は、アプリケーション取り消しコンポーネント168も含む。アプリケーション取り消しコンポーネント168は、(例えば、オブジェクト階層において1つ又は複数のデバイスの表現からアプリケーションのマッピングを解除し、1つ又は複数のデバイスからアプリケーションを除去し、および/またはオブジェクト階層からアプリケーションを完全に除去することによってアプリケーションを完全に使用廃止することにより)アプリケーションを取り消すように構成されている。アプリケーション取り消しコンポーネント168は、これによって、典型的なアプリケーション・ライフ・サイクルにおいてアプリケーションのアンインストールを容易にする。] 図10
[0054] [0064] 最後に、例示的システム160は、オブジェクト階層送信コンポーネント170も含む。オブジェクト階層送信コンポーネント170は、オブジェクト階層44の少なくとも一部を少なくとも1つのデバイスに送信するように構成されている。オブジェクト階層44は、アプリケーション管理システム160のコンポーネントの多くによって変更することができ、オブジェクト階層44の変更を、その中に表されている1つ又は複数のデバイスと同期させて、コンピューティング環境のアプリケーション集合の更新を実施することができる。本明細書において論じた技法のこれら多くの変形を組み合わせることによって、例示的システム160は、計算メッシュを構成する多くのデバイス間において、典型的なアプリケーション・ライフ・サイクルを通じて大きなアプリケーション集合を管理運営するための総合的なアプリケーション管理サービスを提供する。]
[0055] [0065] 以上、構造的特徴および/または方法論的行為に特定的な文言で本主題について説明したが、添付した特許請求の範囲において定義されている主題は、かならずしも前述した具体的な特徴や行為には限定されないことは言うまでもない。むしろ、前述の具体的な特徴および行為は、特許請求の範囲を実施する形態例として開示したまでである。]
[0056] [0066] 本願において用いる場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」等の用語は、一般に、コンピューター関連エンティティを指し、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることを意図している。例えば、コンポーネントは、限定ではなく、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、エクゼキュータブル、実行のスレッド、プログラム、および/またはコンピューターであってもよい。例示として、コントローラ上で実行中のアプリケーションおよびそのコントローラの双方がコンポーネントであり得る。1つ又は複数のコンポーネントが1つのプロセスの中に位置しても良く、および/または実行のスレッドおよびコンポーネントを1つのコンピューター上に局在させて(localize)もよく、および/または2つ以上のコンピューター間で分散してもよい。]
[0057] [0067] 更に、特許請求する主題は、コンピューターを制御して開示した主題を実現させるソフトウェア、ファームウェア、ハードウェア、またはそれらのいかなる組み合わせをも生成するために、標準的なプログラミングおよび/またはエンジニアリング技法を用いた、方法、装置、または製造品目として実現することができる。「製造品目」という用語は、本明細書において用いる場合、あらゆるコンピューター読み取り可能デバイス、担体、または媒体からでもアクセス可能なコンピューター・プログラムを包含することを意図している。勿論、特許請求する主題の範囲および主旨から逸脱することなく、多くの変更をこの構成に加えることができることは、当業者には認められよう。]
[0058] [0068]図11および以下の論述は、本明細書において明記した設備(provision)の1つ又は複数の実施形態を実現するのに適したコンピューティング環境の端的な全体的説明を提示する。図11の動作環境は、適した動作環境の一例に過ぎず、動作環境の使用または機能の範囲に関して、何の限定も示唆することを意図するのではない。コンピューティングデバイスの例には、限定ではなく、パーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ・デバイス、移動体デバイス(移動電話機、パーソナル・ディジタル・アシスタント(PDA)、メディア・プレーヤーなど)、マルチプロセッサ・システム、消費者向け電子機器、ミニ・コンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスのいずれでも含む分散型コンピューティング環境等が含まれる。] 図11
[0059] [0069] 実施形態は、1つ又は複数のコンピューティングデバイスによって実行される「コンピューター読み取り可能命令」という一般的なコンテキストにおいて説明するが、こうすることが求められているのではない。コンピューター読み取り可能命令は、コンピューター読み取り可能媒体(以下で論ずる)によって配信することができる。コンピューター読み取り可能命令は、関数、オブジェクト、アプリケーション・プログラミング・インターフェース(API)、データー構造などのような、特定のタスクを実行するかまたは特定の抽象的データー・タイプを実現するプログラム・モジュールとして実現することができる。通例では、コンピューター読み取り可能命令の機能は、所望に応じて、種々の環境において組み合わせることまたは分散することもできる。]
[0060] [0070]図11は、本明細書において提唱した1つ又は複数の実施形態を実現するように構成されているコンピューティングデバイス182を備えているシステム180の一例を示す。一構成では、コンピューティングデバイス182は、少なくとも1つの演算装置186と、メモリー188とを含む。コンピューティングデバイスの正確な構成および種類によっては、メモリー188は揮発性(例えば、RAMのような)、不揮発性(例えば、ROM、フラッシュ・メモリーのような)、またはこれら2つの組み合わせとなることもある。この構成は、図11では、破線184によって示されている。] 図11
[0061] [0071] 他の実施形態では、コンピューティングデバイス182は、追加の機構および/または機能を含むこともできる。例えば、コンピューティングデバイス182は、限定ではなく、磁気ストレージ、光ストレージ等を含む追加のストレージ(例えば、リムーバブルおよび/または非リムーバブル)を含むこともできる。このような追加のストレージは、図11では、ストレージ190によって例示されている。一実施形態では、本明細書において提唱した1つ又は複数の実施形態を実現するためのコンピューター読み取り可能命令は、ストレージ190の中に入れることができる。また、ストレージ190は、オペレーティング・システム、アプリケーション・プログラムなどを実装するための他のコンピューター読み取り可能命令も格納することができる。コンピューター読み取り可能命令は、例えば、演算装置186による実行のために、メモリー188にロードすることができる。] 図11
[0062] [0072] 「コンピューター読み取り可能媒体」という用語は、本明細書において用いる場合、コンピューター記憶媒体を含む。コンピューター記憶媒体は、コンピューター読み取り可能命令またはその他のデーターのような情報の格納のためにいずれかの方法または技術で実現された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含む。メモリー188およびストレージ190は、コンピューター記憶媒体の例である。コンピューター記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができその上デバイス182によってアクセスすることができるのであれば他のいずれの媒体をも含む。このような御ピュータ記憶媒体は、そのいずれもがコンピューティングデバイス182の一部となってもよい。]
[0063] [0073] また、コンピューティングデバイス182は、コンピューティングデバイス182が他のデバイスと通信することを可能にする通信接続(1つまたは複数)196も含むことができる。通信接続(1つまたは複数)196は、限定ではなく、モデム、ネットワーク・インターフェース・カード(NIC)、統合ネットワーク・インターフェース、無線周波数送信機/受信機、赤外線ポート、USB接続、またはコンピューティングデバイス182を他のコンピューティングデバイスと接続するためのその他のインターフェースを含むことができる。通信接続(1つまたは複数)196は、有線接続またはワイヤレス接続を含むことができる。通信接続(1つまたは複数)196は、通信媒体を送信および/または受信することができる。]
[0064] [0074] 「コンピューター読み取り可能媒体」という用語は、通信媒体を含むことができる。通信媒体は、通例、搬送波またはその他の伝達メカニズムのような「変調データー信号」にコンピューター読み取り可能命令またはその他のデーターを具体化し、いずれの情報配信媒体も含む。「変調データー信号」という用語は、情報を信号内に符号化するような態様で設定または変更したその特性の1つ又は複数を有する信号を含むことができる。]
[0065] [0075]コンピューティングデバイス182は、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイス、赤外線カメラ、ビデオ入力デバイス、および/またはその他のあらゆる入力デバイスというような、入力デバイス(1つまたは複数)194を含むことができる。1つ又は複数のディスプレイ、スピーカー、プリンター、および/またはその他の出力デバイスというような出力デバイス(1つまたは複数)192も、コンピューティングデバイス182に含むことができる。入力デバイス(1つまたは複数)194および出力デバイス(1つまたは複数)192は、有線接続、ワイヤレス接続、またはそのいずれの組み合わせによってでも、コンピューティングデバイス182に接続することができる。一実施形態では、別のコンピューティングデバイスからの入力デバイスまたは出力デバイスを、コンピューティングデバイス182用の入力デバイス(1つまたは複数)194または出力デバイス(1つまたは複数)192として用いることもできる。]
[0066] [0076]コンピューティングデバイス182のコンポーネントは、バスのような、種々の相互接続によって接続することができる。このような相互接続は、PCIExpressのようなペリフェラル・コンポーネント相互接続(PCI)、ユニバーサル・シリアル・バス(USB)、ファイアワイヤ(IEEE1394)、光バス構造などを含むことができる。別の実施形態では、コンピューティングデバイス182のコンポーネントは、ネットワークで相互接続することができる。例えば、メモリー188は、ネットワークによって相互接続されている異なる物理的位置にある多数の物理的メモリー・ユニットによって構成することもできる。]
[0067] [0077]コンピューター読み取り可能命令を格納するために利用される記憶デバイスは、ネットワークに跨って分散させてもよいことは、当業者には分かるであろう。例えば、ネットワーク198を通じてアクセス可能なコンピューティングデバイス200は、本明細書において提唱した1つ又は複数の実施形態を実現するために、コンピューター読み取り可能命令を格納することができる。コンピューティングデバイス182は、コンピューティングデバイス100にアクセスし、コンピューター読み取り可能命令の一部または全部を実行のためにダウンロードすることができる。あるいは、コンピューティングデバイス182は、必要に応じて、コンピューター読み取り可能命令の断片をダウンロードすることができ、一部の命令をコンピューティングデバイス182において実行し、一部をコンピューティングデバイス200において実行することもできる。]
[0068] [0078] 本明細書では、実施形態の種々の動作について提唱した。一実施形態では、記載した動作の1つ又は複数が、1つ又は複数のコンピューター読み取り可能媒体上に格納されたコンピューター読み取り可能命令を構成することができ、コンピューティングデバイスによって実行すると、当該コンピューティングデバイスに、記載した動作を実行させる。これらの動作の一部または全部を記載した順序は、これらの動作に必然的な順序依存性があるように解釈すべきではない。この記載の援助を得た当業者には、代わりの順序も認められよう。更に、本明細書において提唱した各実施形態において、全ての動作が必ずしも出てくる訳ではないことは言うまでもない。]
[0069] [0079] 更に、「一例の」という単語は、本明細書では、一例、実例、または例示としての役割を果たすことを意味するために用いられる。本明細書において「一例の」として記載される態様または設計はいずれも、他の態様または設計よりも有利であるとは必ずしも解釈されない。むしろ、一例のという用語の使用は、概念を具体的に紹介することを意図している。本明細書において用いる場合、「または」という用語は、排他的な「または」ではなく包含的な「または」を意味することを意図する。即ち、そうでないことが指定されていない限り、または文脈から明白でない限り、「XはAまたはBを採用する」とは、自然な包含的組み合わせ(permutation)のいずれでも意味することを意図する。即ち、XがAを採用する場合、XがBを採用する場合、またはXがAおよびBの双方を採用する場合、これらの実例のいずれにおいても、「XはAまたはBを採用する」が満たされる。加えて、冠詞「a」および「an」は、本願および添付した特許請求の範囲において用いられる場合、そうでないことが指定されていない限り、また単数形を対象とすることが文脈から明白でない限り、「1つ又は複数」を意味するように通常解釈することができる。]
[0070] [0080] また、1つ又は複数の実施態様に関して本開示を示し説明したが、本明細書および添付図面の熟読および理解に基づいて、同等の変形や変更が当業者には想起されよう。本開示は、このような変更や変形を全て含み、以下の特許請求の範囲のみによって限定される。特に、以上で述べたコンポーネント(例えば、エレメント、リソース等)によって実行される種々の機能に関して、このようなコンポーネントを記載するために用いられた用語は、そうでないことが示されない限り、記載されたコンポーネント(例えば、機能的に同等な)の指定された機能を実行するのであれば、本開示のここで例示された実施態様例における機能を実行する、開示された構造に構造的に同等でなくても、いずれのコンポーネントにも対応することを意図している。加えて、本開示の特定的な機構を、様々な実施態様の内1つのみに関して開示したが、このような機構は、いずれの所与の用途または特定の用途にとっても望まれるまたは有利となるように、他の実施態様の1つ又は複数の別の機構と組み合わせることができる。更に、「含む」、「有している」(having)、「有する」(has)、「と」(with)という用語、またはその異形が詳細な説明または特許請求の範囲において用いられている限りにおいて、このような単語は、用語「備えている」(comprising)と同様に内包的であることを意図している。]
权利要求:

請求項1
アプリケーション・ストア(84)によって管理される少なくとも1つのアプリケーション(112)の、少なくとも1つのデバイス(50)上においてコンピューティング環境を表すオブジェクト階層(44)への展開を管理するシステム(86)であって、アプリケーション取得コンポーネント(88)であって、アプリケーション(112)をインストールする要求を受け、前記アプリケーション(112)を前記アプリケーション・ストア(84)から取得するように構成されている、アプリケーション取得コンポーネント(88)と、前記オブジェクト階層(44)において表されている少なくとも1つのデバイス(50)を、少なくとも1つのインストールされているアプリケーション(112)にマッピングするように構成されているアプリケーション・マッピング・コンポーネント(90)と、前記少なくとも1つのインストールされているアプリケーション(112)を前記オブジェクト階層(44)において展開するように構成されているアプリケーション展開コンポーネント(92)と、を備えている、システム(86)。
請求項2
請求項1記載のシステムであって、少なくとも1つのアプリケーションを表すアプリケーション・ストアを備えており、それぞれのアプリケーションが少なくとも1つのアプリケーション・リソースを構成する、システム。
請求項3
請求項1記載のシステムであって、前記オブジェクト階層を格納するように構成されているオブジェクト階層ストアと、前記オブジェクト階層の少なくとも一部を、前記少なくとも1つのデバイスに送信するように構成されているオブジェクト階層送信コンポーネントと、を備えている、システム。
請求項4
請求項1記載のシステムであって、ユーザーからアプリケーション照会を受け、前記アプリケーション照会を満たすアプリケーションを選択し、選択したアプリケーションをユーザーに紹介する、ように構成されている、アプリケーション発見コンポーネントを備えている、システム。
請求項5
請求項1記載のシステムにおいて、前記アプリケーション取得コンポーネントは、前記デバイスを通じてアプリケーション・ライセンスをユーザーに提示し、前記ユーザーから前記アプリケーション・ライセンスの受諾を受けたときに、前記アプリケーション・ライセンスの前記受諾を記録するように構成されている、システム。
請求項6
請求項1記載のシステムにおいて、前記アプリケーション取得コンポーネントは、前記少なくとも1つのデバイスのユーザーとの取得トランザクションを仲介するように構成されている、システム。
請求項7
請求項1記載のシステムにおいて、前記アプリケーション取得コンポーネントは、前記アプリケーションのユーザーを表すユーザー・アカウントを発生するように構成されている、システム。
請求項8
請求項1記載のシステムにおいて、前記展開は、前記デバイスおよび該デバイスのユーザーの内少なくとも1つに関して前記アプリケーションのコンフィギュレーションを設定することを含む、システム。
請求項9
請求項1記載のシステムであって、前記少なくとも1つのデバイス上において前記アプリケーションを起動するように構成されているアプリケーション起動コンポーネントを備えている、システム。
請求項10
請求項1記載のシステムであって、前記アプリケーションをユーザーと共有する要求を受け、前記アプリケーションを共有する前記要求を受けたときに、前記アプリケーションを前記ユーザーと共有する、ように構成されているアプリケーション共有コンポーネントを備えている、システム。
請求項11
請求項10記載のシステムにおいて、前記アプリケーション共有コンポーネントは、前記アプリケーション、アプリケーション・セッション、アプリケーション・コンフィギュレーション、および当該アプリケーションによって発生した少なくとも1つのデーター・オブジェクトの内少なくとも1つを備えている、前記オブジェクト階層の一部を前記ユーザーと共有するように構成されている、システム。
請求項12
請求項1記載のシステムであって、前記アプリケーションを更新するように構成されているアプリケーション更新コンポーネントを備えている、システム。
請求項13
請求項12記載のシステムにおいて、前記アプリケーション更新コンポーネントは、前記オブジェクト階層において少なくとも1つのアプリケーション・リソースを更新するように構成されており、前記アプリケーションを取り消すように構成されているアプリケーション取り消しコンポーネントを備えている、システム。
請求項14
請求項1記載のシステムであって、前記アプリケーションを取り消すことを要求するように構成されている受信コンポーネントを備えている、システム。
請求項15
請求項14記載のシステムにおいて、前記受信コンポーネントは、前記オブジェクト階層において前記アプリケーションを取り消すように構成されている、システム。
类似技术:
公开号 | 公开日 | 专利标题
US10277582B2|2019-04-30|Application service architecture
US9665841B2|2017-05-30|Cross-platform application framework
US9948700B2|2018-04-17|ADFDI support for custom attribute properties
Jendrock et al.2014|The java ee 7 tutorial
US20170083303A1|2017-03-23|System and Methods for Integration of an Application Runtime Environment Into a User Computing Environment
US20200258133A1|2020-08-13|Installable web applications
US10365916B2|2019-07-30|Providing access to a hybrid application offline
Meier2012|Professional Android 4 application development
US8789015B2|2014-07-22|Integrated application localization
EP2786279B1|2019-03-06|Deployment of a driver or an application on a client device having a write-filter
EP2786248B1|2018-10-03|Automatic updating of an application or a driver on a client device using a deployment configuration file
EP2786249B1|2017-07-05|Creation or installation of a disk image for a target device having one of a plurality of hardware platforms
CN102349062B|2013-10-30|浏览器缓存与远程仓库同步的方法和系统
US9448776B1|2016-09-20|Method and apparatus for converting a website into a native mobile application
JP5805621B2|2015-11-04|Device-dependent on-demand compilation and deployment of mobile applications
US8086995B2|2011-12-27|System and method for flexible visual representation of device fonts
Taivalsaari et al.2008|Web browser as an application platform
JP5058500B2|2012-10-24|再利用スコアおよび推奨された再利用可能データを用いたリソースオーサリング
US9244673B2|2016-01-26|System and method for updating application archive files
US8700804B1|2014-04-15|Methods and apparatus for managing mobile content
US8375351B2|2013-02-12|Extensible rapid application development for disparate data sources
Harrington2015|Learning raspbian
US8667031B2|2014-03-04|Reuse of shared metadata across applications via URL protocol
US8448161B2|2013-05-21|Application tracking for application execution environment
JP5099982B2|2012-12-19|完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置
同族专利:
公开号 | 公开日
US10514901B2|2019-12-24|
US20090241104A1|2009-09-24|
TWI473019B|2015-02-11|
JP5409767B2|2014-02-05|
BRPI0907773A2|2015-07-14|
US20170357498A1|2017-12-14|
US20200110594A1|2020-04-09|
KR20100133382A|2010-12-21|
CN101978366B|2013-10-30|
WO2009117207A1|2009-09-24|
TW200941347A|2009-10-01|
EP2255295A4|2011-11-02|
US9753712B2|2017-09-05|
EP2255295A1|2010-12-01|
CN101978366A|2011-02-16|
EP2255295B1|2014-10-15|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-02-18| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120217 |
2012-02-18| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120217 |
2013-03-14| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130313 |
2013-04-03| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130402 |
2013-07-03| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130702 |
2013-10-03| TRDD| Decision of grant or rejection written|
2013-10-08| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131007 |
2013-11-14| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131105 |
2013-11-15| R150| Certificate of patent or registration of utility model|Ref document number: 5409767 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2015-04-17| S111| Request for change of ownership or part of ownership|Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
2015-04-27| R350| Written notification of registration of transfer|Free format text: JAPANESE INTERMEDIATE CODE: R350 |
2016-11-01| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-11-07| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-11-06| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-11-05| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2020-10-30| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2021-10-29| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]